1. Field of the Invention
The present invention relates to volatile memory in a computer, and more particularly, to limiting volatile computer memory based on available energy of an auxiliary power source.
2. Description of the Related Art
As financial, scientific, medical, and other critical data are being integrated with computers and computer networks, reliability and availability of the data continues to be important. Loss of data may have severe negative consequences for these and other users of a computer system.
Backup systems reduce the possibility of data loss. Natural disasters such as fire, lightning, hurricanes, etc., and man made disasters such as civil unrest, computer hacker attacks, and terrorist attacks can also affect computer networks and increase the need for backup systems and for data to be stored remotely. Storing data at distances from a few miles to thousands of miles is often required to overcome many disaster scenarios.
Backup systems, however, are not the complete answer for prevention of lost data. This is because data that is stored in a computer's volatile memory can be lost if power is interrupted. Even portions of data that are stored in a volatile memory in just seconds can be devastating to lose for some users. When a power interruption occurs, data stored in volatile memory, such as a read cache or write cache, is lost unless steps are taken to prevent such data loss. In response to the problem of volatile memory loss, computer systems have been developed with batteries, uninterruptible power supplies, and other energy storage means to keep computer systems running long enough to transfer data that is temporarily in the volatile memory to the permanent non-volatile memory. Non-volatile memory can take the form of a hard disk, a tape, a flash memory, and other types of memory that maintains the contents in a retrievable form within the memory without an applied source of power.
Typically, when an auxiliary power source is provided in the form of a battery, the battery is designed to be of sufficient capacity to adequately power the computer while the steps required to shutdown a computer are performed. Typically, a primary step includes transferring the contents of the volatile memory to a non-volatile memory. If, however, the battery is not charged sufficiently to perform all of the steps necessary for a complete shutdown operation, data in the computer's volatile memory may be lost when a primary power source interruption occurs.
The current state of the art is to monitor the auxiliary power source batteries to ensure sufficient energy is present in the batteries to be able to fully save data stored in the allocated cache or volatile memory upon the loss of power supplied to the computer. If the available energy in an auxiliary power source is in danger of dropping below a level required to shut down the computer and save all of the data stored on the volatile memory, the computer will initiate a shutdown process to ensure that the data in the volatile computer memory is saved. However, while this process is effective, it is inefficient because there will be times when the computer will initiate the shutdown process during normal operations.
During a computer startup process, typically a computer's auxiliary power source is evaluated to determine whether enough energy exists to save data that will be stored in the volatile computer memory that is fully allocated for use during normal operation. The present state of the art is such that full allocation of volatile memory is set by a user and cannot be varied automatically based on available energy in the auxiliary power source.
If the computer determines that the auxiliary power source does not have enough energy to save the data stored in the fully allocated volatile computer memory, the computer startup process will be delayed for minutes or even hours while the auxiliary power source is charged to a level required to save the fully allocated volatile computer memory. In a critical application, a delay caused by waiting for the auxiliary power source to be charged is detrimental to the computer user since an application executing on the computer cannot be used.
What is needed is a process, apparatus, and system that limit allocated volatile computer memory based on available energy in an auxiliary power source. Beneficially, such a process, apparatus, and system would determine the available energy of the auxiliary power source and limit volatile computer memory allocated for use. In addition, during a computer startup process, the status of available energy in an auxiliary power source would be evaluated, and volatile computer memory would be limited such that the computer could be put into use earlier than if the startup process had to wait for the auxiliary power source to be charged to a level needed to store data for a fully allocated volatile computer memory. In other words, the computer would be allowed to operate at a reduced operation level that matches the amount of available battery power capable of saving the data in the volatile memory. As the battery power increases, the relative operational speed of the computer will gradually increase until reaching full operational levels.